
import libnum
c1= 36918910341116680090654563538246204134840776220077189276689868322808977412566781872132517635399441578464309667998925236488280867210758507758915311644529399878185776345227817559234605958783077866016808605942558810445187434690812992072238407431218047312484354859724174751718700409405142819140636116559320641695
c2= 15601788304485903964195122196382181273808496834343051747331984997977255326224514191280515875796224074672957848566506948553165091090701291545031857563686815297483181025074113978465751897596411324331847008870832527695258040104858667684793196948970048750296571273364559767074262996595282324974180754813257013752
p= 12101696894052331138951718202838643670037274599483776996203693662637821825873973767235442427190607145999472731101517998719984942030184683388441121181962123
r= 10199001137987151966640837133782537428248507382360655526592866939552984259171772190788036403425837649697437126360866173688083643144865107648483668545682383
e = 31413537523

# m^e%p=c1%p
# m^e%r=c1%r
# #e=31413537523
# #d1?d2?
# m^e%p=c11
# #因为是m>p
# #c11^dp%p=m1
# m^e%r=c22
# #因为是m>r
# #c22^dr%r=m2
# crt([m1,m2],[p,r])

c11=c1%p
c22=c2%r
d1=libnum.invmod(e,p-1)
d2=libnum.invmod(e,r-1)
m1=pow(c11,d1,p)
m2=pow(c22,d2,r)
m=libnum.solve_crt([m1,m2],[p,r])
print(libnum.n2s(m))
#b'NSSCTF{yUanshEnx1ncHun2o23!}

c=libnum.solve_crt([c1,c2],[p,r])
d=libnum.invmod(e,(p-1)*(r-1))
m=pow(c,d,p*r)
print(libnum.n2s(m))

